<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Setting extends Admin_Controller {

	public $model = "setting";
	public $view = "setting";
	public $permissionCreate = 'Setting.Create';
    public $permissionDelete = 'Setting.Delete';
    public $permissionEdit   = 'Setting.Edit';
    public $permissionView   = 'Setting.View';
	
	protected $index_show = array(
		array( 'field' => 'config_id',
				'label' => 'role id'),	
		array( 'field' => 'role_name',
				'label' => 'role name',
				'custom_value' => '<a href="{url_edit}{role_id}">{role_name}</a>', //replace value
				),
		array( 'field' => 'role_description',
				'label' => 'role description'),
	);
    function __construct() {
        parent::__construct();
        $this->load->model($this->model.'_m');
    }
	
	function index($page =0)
	{
		$this->current_permission = $this->permissionView;
		if($settings_post = $this->input->post('edit'))
		{
			if(!isset($settings_post['cms_cache_enalbe']))
				$settings_post['cms_cache_enalbe'] = 0;
			@unlink($this->setting_m->config_file);
			$error = FALSE;
			foreach($settings_post as $key =>$setting)
			{
				$this->setting_m->update_by('setting_name',$key, array('value'=>$setting));
				if($this->setting_m->cms_config($key, $setting) === FALSE)
				{
					$error = TRUE;
					break;
				}
			}
			if($error)
				$this->messages->add("Không ghi được file config",'error');
			else
				$this->messages->add("Lưu thông tin cấu hình thành công.",'success');
			redirect(current_url());
		}

		$settings = $this->setting_m->get_all();
		if($settings)
		{
			foreach($settings as $setting)
			{
				$this->data['edit'][$setting->group][$setting->setting_name] = $setting;
			}
		}
		$this->theme_data["main"] = $this->view."/index";
		$this->template->viewAdmin($this->theme_data, $this->data);
	}

	function init_default()
	{
		$settings = array();

		//default
		
		//admin
		$settings[] = array('setting_name'=>'cms_admin_post_locktime',
							'value' =>0,
							'description' =>'Đơn vị tính bằng phút. Nhập 0 để không giới hạn thời gian.',
							'group' =>'admin',
							'title' =>'Thời gian tối đa khóa 1 bài viết',
							);
		//cache
		$settings[] = array('setting_name'=>'cms_cache_enalbe',
							'value' =>0,
							'description' =>'Đơn vị tính bằng phút. Bật cache sẽ giúp website chạy nhanh hơn. Nếu để 0 thì là không bật chức năng tại vị trí đó',
							'group' =>'cache',
							'title' =>'Bật/tắt chức năng cache',
							);
		$settings[] = array('setting_name'=>'cache_uindex_home',
							'value' =>0,
							'description' =>'Cache trên trang chủ',
							'group' =>'cache',
							'title' =>'Trang chủ',
							);
		$settings[] = array('setting_name'=>'cache_uindex_category',
							'value' =>0,
							'description' =>'Cache trên trang danh mục',
							'group' =>'cache',
							'title' =>'Trang danh mục',
							);
		$settings[] = array('setting_name'=>'cache_uindex_view',
							'value' =>0,
							'description' =>'Cache trên trang chi tiết',
							'group' =>'cache',
							'title' =>'Trang chi tiết',
							);

		//email
		$settings[] = array('setting_name'=>'cms_email_host',
							'value' => '',
							'description' =>'Máy chủ SMTP Goolge: ssl://smtp.googlemail.com',
							'group' =>'mail',
							'title' =>'Máy chủ SMTP',
							);
		$settings[] = array('setting_name'=>'cms_email_port',
							'value' =>'',
							'description' =>'Cổng SMTP Google: 465',
							'group' =>'mail',
							'title' =>'Cổng SMTP',
							);
		$settings[] = array('setting_name'=>'cms_email_user',
							'value' =>'',
							'description' =>'Tài khoản SMTP GMail',
							'group' =>'mail',
							'title' =>'Tài khoản SMTP',
							);
		$settings[] = array('setting_name'=>'cms_email_password',
							'value' =>'',
							'description' =>'Mật khẩu SMTP Gmail',
							'group' =>'mail',
							'title' =>'Mật khẩu SMTP',
							);

		$this->db->truncate('setting');
		$this->db->insert_batch('setting',$settings);
	}
}
